package com.chongchong.flow.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chongchong.core.mp.support.Query;
import com.chongchong.core.tool.api.R;
import com.chongchong.flow.entity.FlowMessage;
import com.chongchong.flow.service.IFlowMessageService;
import com.chongchong.flow.vo.FlowMessageVo;
import com.chongchong.flow.wrapper.FlowMessageWrapper;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 工作流消息操作控制器类。
 *
 * @author Jerry
 * @date 2021-06-06
 */
@Api(tags = "工作流消息操作接口")
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/flowmessage")
public class FlowMessageController {

    private IFlowMessageService flowMessageService;

    /**
     * 获取当前用户的催办消息列表。
     * 不仅仅包含，其中包括当前用户所属角色、部门和岗位的候选组催办消息。
     *
     * @return 应答结果对象，包含查询结果集。
     */
    @PostMapping("/listRemindingTask")
	public R<IPage<FlowMessageVo>> list(FlowMessage flowMessage, Query query) {
		List<FlowMessage> list = flowMessageService.getRemindingMessageListByUser();
		IPage<FlowMessage> pagesVO = new Page<>(query.getCurrent(), query.getSize());
		pagesVO.setRecords(list);
		return R.data(FlowMessageWrapper.build().pageVO(pagesVO));
	}
}
